"use strict";
//ts推断不出来的类型默认用string类型
function getVal(param) {
    return param;
}
console.log(getVal('hello'));
console.log(getVal(10));
//获取数组最小值的方法  [1,2,3,4]  ['a','c','d']
// function getMin<T>(arr:T[]):T{
//     let min:T = arr[0];  //第0个当成最小值
//     for(let i = 0;i<arr.length;i++){
//         if(min > arr[i]){
//             min = arr[i]
//         }
//     }
//     return min
// }
// console.log(getMin<string>(['a','c','d']));  //a
// console.log(getMin<number>([1,3,6])); //1
//创建一个数组长度为m，元素都为value
function createArray(m, value) {
    let arr = [];
    for (let i = 0; i < m; i++) {
        arr.push(value);
    }
    return arr;
}
console.log(createArray(3, 'a'));
//交换数组的值  多个类型参数
function change(tuple) {
    return [tuple[1], tuple[0]];
}
console.log(change(['a', 1]));
//泛型类
class GetMin {
    constructor() {
        this.list = [];
    }
    add(param) {
        this.list.push(param);
    }
    getMin() {
        let min = this.list[0]; //第0个当成最小值
        for (let i = 0; i < this.list.length; i++) {
            if (min > this.list[i]) {
                min = this.list[i];
            }
        }
        return min;
    }
}
let p12 = new GetMin();
p12.add(1);
p12.add(2);
p12.add(3);
console.log(p12.getMin());
function create(what) {
    return what;
}
console.log(create({ name: 'lili', age: 19 }));
console.log(create({ type: 'cat' }));
/**

作业：

    1.购物车案例  react做  复习语法，路由，redux ==== 1.5

    2.猫眼  react做 =====  1.5

    3.mvvm js转成ts文件 =====  1

    4.每天3~5道面试题

 */ 
